const ejs = require('ejs')
const path = require('path')

const html = '<div><%= user.name %></div>'
const options = {}
const data = {
	user: { name: 'lywq' }
}

const data2 = {
	user: { name: 'shuangyue' }
}

// 第一种用法

// 返回function, 用于解析 html 中的 ejs 模版
const template = ejs.compile(html, options)

const compiledTemplate1 = template(data)
const compiledTemplate2 = template(data2)

console.log(compiledTemplate1, compiledTemplate2)

// 第二种用法
const renderedTemplate = ejs.render(html, data, options)
console.log('renderedTemplate', renderedTemplate)

// 第三种用法
// 3.1 Promise
const renderedFile = ejs.renderFile(
	path.resolve(__dirname, 'template.html'),
	data,
	options
)
console.log(renderedFile)
renderedFile.then((file) => console.log(file))

// 3.2 callback
const callbackData = {
	user: { name: 'lywq' }
}
ejs.renderFile(
	path.resolve(__dirname, 'template.html'),
	callbackData,
	options,
	(err, file) => {
		console.log(file)
	}
)
